package com.shujia.seven;

import java.math.BigInteger;
import java.util.Arrays;

public class BigIntegerDemo {

    public static void main(String[] args) {
        BigInteger bi1 = new BigInteger("10");
        BigInteger bi2 = new BigInteger("20");

//        public BigInteger abs()：返回此 BigInteger 的绝对值的 BigInteger。
        BigInteger abs = bi1.abs();
        System.out.println(abs);// 10

//        BigInteger add(BigInteger val) ：返回其值为 (this + val) 的 BigInteger
        BigInteger add = bi1.add(bi2);
        System.out.println(add);// 30

//        BigInteger subtract(BigInteger val) ：返回其值为 (this - val) 的 BigInteger
        BigInteger subtract = bi1.subtract(bi2);
        System.out.println(subtract);// -10

//        BigInteger multiply(BigInteger val) ：返回其值为 (this * val) 的 BigInteger
        BigInteger multiply = bi1.multiply(bi2);
        System.out.println(multiply);// 200


//        BigInteger divide(BigInteger val) ：返回其值为 (this / val) 的 BigInteger。整数 相除只保留整数部分。
        BigInteger divide = bi1.divide(bi2);
        System.out.println(divide);// 0


//        BigInteger remainder(BigInteger val) ：返回其值为 (this % val) 的 BigInteger。
        BigInteger remainder = bi1.remainder(bi2);
        System.out.println(remainder);// 10

//        BigInteger[] divideAndRemainder(BigInteger val)：返回包含 (this / val) 后跟
//        (this % val) 的两个 BigInteger 的数组。
        BigInteger[] arr = bi1.divideAndRemainder(bi2);
        System.out.println(Arrays.toString(arr));// 0, 10

//        BigInteger pow(int exponent) ：返回其值为 (thisexponent) 的 BigInteger。
        BigInteger pow = bi1.pow(2);
        System.out.println(pow);// 100


    }
}
